package com.ruoyi.crm.sale.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商机对象 crm_business
 * 
 * @author ruoyi
 * @date 2021-09-09
 */
public class CrmBusiness extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 商机状态组 */
    @Excel(name = "商机状态组")
    private Long typeId;

    /** 销售阶段 */
    private Long statusId;

    /** 销售阶段 */
    @Excel(name = "销售阶段")
    private String statusName;

    /** 下次联系时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "下次联系时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date nextTime;

    /** 客户名称 */
    private Long customerId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 首要联系人 */
    @Excel(name = "首要联系人")
    private String firstContacts;

    /** 电话 */
    private String firstTel;

    /** 邮箱 */
    private String firstMail;

    /** 预计成交日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计成交日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dealDate;

    /** 商机名称 */
    @Excel(name = "商机名称")
    private String businessName;

    /** 商机金额 */
    @Excel(name = "商机金额")
    private BigDecimal money;

    /** 整单折扣 */
    private BigDecimal discountRate;

    /** 产品总金额 */
    private BigDecimal totalPrice;

    /** 负责人 */
    @Excel(name = "负责人")
    private Long businessLeader;

    /** 批次 比如附件批次 */
    private String batchId;

    /** 只读权限 */
    private String roUserId;

    /** 读写权限 */
    private String rwUserId;

    /** 商机状态 */
    @Excel(name = "商机状态")
    private Long isEnd;

    /** 状态说明 */
    @Excel(name = "状态说明")
    private String statusRemark;

    /** 1正常 3  删除 */
    private Long status;

    /** 最后跟进时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最后跟进时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date lastTime;

    /** 0 未跟进 1 已跟进 */
    private Long followup;
    
    /** 商机来源 */
    @Excel(name = "商机来源")
    private String busSource;
    
    /** 商机描述 */
    @Excel(name = "商机描述")
    private String busMsg;
    
    /** 商机级别 */
    @Excel(name = "商机级别")
    private String busLevel;
    
    /** 最后跟进记录 */
    @Excel(name = "最后跟进记录")
    private String lastCon;
    
    /** 附件 */
    private String annex;
    
    /** 负责人 */
    private String businessLeaderName;
    
    /** 创建者名称 */
    private String createByName;
    
    /** 更信任名称 */
    private String updateByName;
    
    private List<CrmBusinessProduct> busProductList;

    public List<CrmBusinessProduct> getBusProductList() {
		return busProductList;
	}

	public void setBusProductList(List<CrmBusinessProduct> busProductList) {
		this.busProductList = busProductList;
	}

	public String getStatusName() {
		return statusName;
	}

	public void setStatusName(String statusName) {
		this.statusName = statusName;
	}

	public String getCustomerName() {
		return customerName;
	}

	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}

	public String getBusinessLeaderName() {
		return businessLeaderName;
	}

	public void setBusinessLeaderName(String businessLeaderName) {
		this.businessLeaderName = businessLeaderName;
	}

	public String getCreateByName() {
		return createByName;
	}

	public void setCreateByName(String createByName) {
		this.createByName = createByName;
	}

	public String getUpdateByName() {
		return updateByName;
	}

	public void setUpdateByName(String updateByName) {
		this.updateByName = updateByName;
	}

	public String getLastCon() {
		return lastCon;
	}

	public void setLastCon(String lastCon) {
		this.lastCon = lastCon;
	}

	public String getAnnex() {
		return annex;
	}

	public void setAnnex(String annex) {
		this.annex = annex;
	}

	public String getBusLevel() {
		return busLevel;
	}

	public void setBusLevel(String busLevel) {
		this.busLevel = busLevel;
	}

	public String getBusSource() {
		return busSource;
	}

	public void setBusSource(String busSource) {
		this.busSource = busSource;
	}

	public String getBusMsg() {
		return busMsg;
	}

	public void setBusMsg(String busMsg) {
		this.busMsg = busMsg;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setTypeId(Long typeId) 
    {
        this.typeId = typeId;
    }

    public Long getTypeId() 
    {
        return typeId;
    }
    public void setStatusId(Long statusId) 
    {
        this.statusId = statusId;
    }

    public Long getStatusId() 
    {
        return statusId;
    }
    public void setNextTime(Date nextTime) 
    {
        this.nextTime = nextTime;
    }

    public Date getNextTime() 
    {
        return nextTime;
    }
    public void setCustomerId(Long customerId) 
    {
        this.customerId = customerId;
    }

    public Long getCustomerId() 
    {
        return customerId;
    }
    public void setFirstContacts(String firstContacts) 
    {
        this.firstContacts = firstContacts;
    }

    public String getFirstContacts() 
    {
        return firstContacts;
    }
    public void setFirstTel(String firstTel) 
    {
        this.firstTel = firstTel;
    }

    public String getFirstTel() 
    {
        return firstTel;
    }
    public void setFirstMail(String firstMail) 
    {
        this.firstMail = firstMail;
    }

    public String getFirstMail() 
    {
        return firstMail;
    }
    public void setDealDate(Date dealDate) 
    {
        this.dealDate = dealDate;
    }

    public Date getDealDate() 
    {
        return dealDate;
    }
    public void setBusinessName(String businessName) 
    {
        this.businessName = businessName;
    }

    public String getBusinessName() 
    {
        return businessName;
    }
    public void setMoney(BigDecimal money) 
    {
        this.money = money;
    }

    public BigDecimal getMoney() 
    {
        return money;
    }
    public void setDiscountRate(BigDecimal discountRate) 
    {
        this.discountRate = discountRate;
    }

    public BigDecimal getDiscountRate() 
    {
        return discountRate;
    }
    public void setTotalPrice(BigDecimal totalPrice) 
    {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice() 
    {
        return totalPrice;
    }
    public void setBusinessLeader(Long businessLeader) 
    {
        this.businessLeader = businessLeader;
    }

    public Long getBusinessLeader() 
    {
        return businessLeader;
    }
    public void setBatchId(String batchId) 
    {
        this.batchId = batchId;
    }

    public String getBatchId() 
    {
        return batchId;
    }
    public void setRoUserId(String roUserId) 
    {
        this.roUserId = roUserId;
    }

    public String getRoUserId() 
    {
        return roUserId;
    }
    public void setRwUserId(String rwUserId) 
    {
        this.rwUserId = rwUserId;
    }

    public String getRwUserId() 
    {
        return rwUserId;
    }
    public void setIsEnd(Long isEnd) 
    {
        this.isEnd = isEnd;
    }

    public Long getIsEnd() 
    {
        return isEnd;
    }
    public void setStatusRemark(String statusRemark) 
    {
        this.statusRemark = statusRemark;
    }

    public String getStatusRemark() 
    {
        return statusRemark;
    }
    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }
    public void setLastTime(Date lastTime) 
    {
        this.lastTime = lastTime;
    }

    public Date getLastTime() 
    {
        return lastTime;
    }
    public void setFollowup(Long followup) 
    {
        this.followup = followup;
    }

    public Long getFollowup() 
    {
        return followup;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("typeId", getTypeId())
            .append("statusId", getStatusId())
            .append("nextTime", getNextTime())
            .append("customerId", getCustomerId())
            .append("firstContacts", getFirstContacts())
            .append("firstTel", getFirstTel())
            .append("firstMail", getFirstMail())
            .append("dealDate", getDealDate())
            .append("businessName", getBusinessName())
            .append("money", getMoney())
            .append("discountRate", getDiscountRate())
            .append("totalPrice", getTotalPrice())
            .append("businessLeader", getBusinessLeader())
            .append("batchId", getBatchId())
            .append("roUserId", getRoUserId())
            .append("rwUserId", getRwUserId())
            .append("isEnd", getIsEnd())
            .append("statusRemark", getStatusRemark())
            .append("status", getStatus())
            .append("lastTime", getLastTime())
            .append("followup", getFollowup())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("busProductList", getBusProductList())
            .toString();
    }
}
